import { http } from '@/utils/request'

/**
 * 创建新订单
 * @param request 订单创建请求，包含：
 *               - userId: 用户ID（必填）
 *               - username: 用户名（必填）
 *               - hospitalId: 医院ID（必填）
 *               - hospitalName: 医院名称（必填）
 *               - serviceCode: 服务编号（必填）
 *               - serviceName: 服务名称（必填）
 *               - orderAmount: 订单金额（必填）
 *               - remark: 备注（可选）
 *               - serviceObject: 服务对象姓名（必填）
 *               - serviceObjectPhone: 服务对象联系电话（必填）
 *               - businessContent: 业务内容，英文逗号分隔的字符串（必填）
 *               - staffId: 服务人员ID（可选）
 *               - serviceStaffName: 服务人员姓名（可选）
 *               - serviceStaffPhone: 服务人员联系电话（可选）
 * @return 返回创建的订单信息，包含系统生成的订单编号
 */
export function addOrders(data) {
  return http.post('/orders/add', data)
}

/**
 * 获取订单列表
 * @param request 查询参数，包含：
 *               - page: 当前页码（可选，不传则返回所有数据）
 *               - size: 每页大小（可选）
 *               - orderNo: 订单编号，精确匹配（可选）
 *               - username: 用户名，模糊查询（可选）
 *               - hospitalName: 医院名称，模糊查询（可选）
 *               - orderStatus: 订单状态（可选）：1-待支付，2-待服务，3-已完成，4-已取消
 *               - startTime: 开始时间，格式：yyyy-MM-dd（可选）
 *               - endTime: 结束时间，格式：yyyy-MM-dd（可选）
 *               - userId: 用户ID（可选，传入则只返回该用户的订单）
 * @return 返回订单列表数据，包含：
 *         - total: 总记录数
 *         - list: 订单列表数据
 */
export function getOrdersList(data) {
  return http.get('/orders/list', data)
}

/**
 * 删除订单
 * @param id 订单ID
 * @return 返回删除结果
 */
export function deleteOrder(data) {
  return http.delete(`/orders/del/${data.id}`)
}

/**
 * 批量删除订单
 * @param ids 订单ID字符串，多个ID用英文逗号分隔，例如：1,2,3
 * @return 返回批量删除结果
 */
export function batchDeleteOrders(data) {
  return http.delete('/orders/del/batch',data)
}

/**
 * 更新订单信息
 * @param request 订单更新请求，包含：
 *               - id: 订单ID（必填）
 *               - serviceObject: 服务对象姓名（可选）
 *               - serviceObjectPhone: 服务对象联系电话（可选）
 *               - businessContent: 业务内容，英文逗号分隔的字符串（可选）
 *               - remark: 备注（可选）
 *               - hospitalId: 医院ID（可选）
 *               - hospitalName: 医院名称（可选）
 *               - staffId: 服务人员ID（可选）
 *               - serviceStaffName: 执行服务人员姓名（可选）
 *               - serviceStaffPhone: 执行服务人员联系电话（可选）
 * @return 返回更新结果
 */
export function updateOrder(data) {
  return http.put('/orders/update',data)
}

/**
 * 更新订单状态
 * @param id 订单ID
 * @param status 订单状态：1-待支付，2-待服务，3-已完成，4-已取消
 * @return 返回状态更新结果
 */

export function updateOrderStatus(data) {
  return http.put(`/orders/status?id=${data.id}&status=${data.status}`)
}

/**
 * 订单支付
 * @param request 支付请求，包含：
 *               - orderId: 订单ID（必填）
 *               - payPassword: 支付密码（必填）
 * @param token 用户登录token
 * @return 返回支付结果
 */
export function payOrder(data) {
  return http.post('/orders/pay',data)
}